import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

//getter不是必须的
//getter就是把state里的数据又套了一层，在vue组件里不用$store.state.xxx的方式直接取了，用$store.getter.xxx的方式取
//getter的key要哥state定义的变量名字保持一致
const getters = {
    userId:function (state) {
        return state.userId
    }
}

//"jia"是操作类型，actions用小写，ps：js中，key本质上字符串，不加引号是系统编译的时候自己加
//预置的业务逻辑都放到actions
const actions = {
    userId: function (context, value) {
        context.commit('SET_USERID', value)
    }
}

//"jia"是操作类型，mutations用大写
//参数state就是下边的state对象，用这个参数就可以直接操作state存储的变量
//mutations里只写怎么操作全局变量，逻辑很简单，复杂的逻辑放到actions
const mutations = {
    SET_USERID: function (state, value) {
        state.userId = value
    }
}

const modules = {}

//就定义你要用的全局变量就可以了，没有其他的操作
const state = {
    userId: 0
}

export default new Vuex.Store({
    getters,
    actions,
    mutations,
    state,
    modules
})
